﻿namespace NGen.Managers.Collision
{
	/// <summary>
	/// 	Interface for the ManagerCollision object
	/// </summary>
	public interface IManagerCollision2D : IGameManager
	{
		#region interface methods

		/// <summary>
		/// 	This method is used to add a game object to the Collision Manager.  The identifying number
		/// 	is necessary as well as specifying the correct type of object.  The id is used to find the
		/// 	object to be tested on and the type is whether or not it needs to be checked for collisions
		/// 	due to its movement.
		/// </summary>
		/// <param name = "p_intCollidableId">The id of the object to be added</param>
		/// <param name = "p_blStatic">True if it is a static object and false if it is a dynamic object</param>
		/// <returns>true is returned if the object's id is added to the collision manager; 
		/// 	false otherwise</returns>
		bool RegisterCollidable(uint p_intCollidableId, bool p_blStatic);

		/// <summary>
		/// 	This method is used to remove a game object from the Collision Manager.  This should be used
		/// 	for when an object no longer needs to have collisions checked on it.
		/// </summary>
		/// <param name = "p_intCollidableId">The id of the object to be removed</param>
		/// <returns>true is returned if the object's id is removed from the collision manager; 
		/// 	false otherwise</returns>
		bool UnRegisterCollidable(uint p_intCollidableId);

		#endregion
	}
}